The API is divided into a number of categories:
Here is a sample program to get you started. To find out about all the functions that are available, read the source code. Each function is delinated with a full rows of percent signs with comments describing the parameters required for the function and what it does. For ease in finding a function, they are sorted in alphabetical order. Most of the image functions are found in image.c and effects.c.
Here is a full example of a program, example.c, that reads a JPEG image, creates a thumbnail, and writes it to disk in the GIF image format.
#include <magick.h> int main(int argc,char **argv) { Image *image, *scaled_image; ImageInfo image_info; /* Initialize the image info structure and read an image. */ GetImageInfo(&image_info); (void) strcpy(image_info.filename,"image.jpg"); image=ReadImage(&image_info); if (image == (Image *) NULL) exit(1); /* Turn the image into a thumbnail. */ scaled_image=ZoomImage(image,106,80,MitchellFilter); if (scaled_image != (Image *) NULL) { DestroyImage(image); image=scaled_image; } /* Write the image as GIF and destroy it. */ (void) strcpy(image->filename,"image.gif"); WriteImage(&image_info,image); DestroyImage(image); }
Now we need to compile. On Unix, the command would look something like this:
cc -o example -O -I/usr/local/include/magick example.c \ -L/usr/local/lib -lMagick -lX11 -lm
If you compile with C++ you must undefine class (since it is a C++ reserved word). The class element of the Image structure in C++ is defined as c_class. Both of these requirements are illustrated here:
#include <magick.h> #if defined(__cplusplus) || defined(c_plusplus) #undef class #endif ... if (image->c_class == DirectClass)